/**
 * 对模拟数据进行验证与清洗
 * @param {Array} data - 待处理的模拟数据数组
 * @returns {Array} 清洗后的数据数组
 */
function cleanData(data) {
  // 去除重复值
  const uniqueData = data.filter((item, index, self) => {
    return index === self.findIndex((t) => t.id === item.id)
  })

  // 处理缺失值和异常值
  const cleanedData = uniqueData.map(item => {
    // 处理缺失值
    if (item.examScore === null) {
      item.examScore = 0
    }
    if (item.attendanceRate === null) {
      item.attendanceRate = '0%'
    }
    // 处理异常值
    if (item.examScore > 100) {
      item.examScore = 100
    }
    return item
  })

  // 计算每个学生的成绩提升率
  cleanedData.forEach(item => {
    if (item.previousExamScore && item.examScore) {
      item.scoreImprovementRate = ((item.examScore - item.previousExamScore) / item.previousExamScore) * 100
    } else {
      item.scoreImprovementRate = 0
    }
  })

  return cleanedData
}

export default cleanData
